Faire des sauvegardes différentielles journalières de son /home et supprimer les sauvegardes vieilles d'une semaine par exemple. Ceci est réalisé via le logiciel rdiff-backup. J'explique également comment tout automatiser.
Pour installer rdiff-backup, il vous suffit de lancer la commande suivante :
sudo apt-get install rdiff-backup
Pour Ubuntu « Gutsy Gibbon » 7.10 il suffit de cliquer ici.
Voici la commande qui permet de faire une sauvegarde :
rdiff-backup --exclude /home/mon_login/.aMule /home/mon_login /repertoire_de_sauvegarde
Ici on sauvegarde tout le /home/mon_login sauf le repertoire /home/mon_login/.aMule dans le dossier de destination /repertoire_de_sauvegarde.
Si /repertoire_de_sauvegarde n'est pas vide, un message nous indique qu'il faut utiliser l'option –force et dans ce cas, son contenu est supprimé. Donc attention, dans ce cas, à sauvegarder le contenu de /repertoire_de_sauvegarde au préalable.
Pour supprimer les différences accumulées au fur et à mesure que l'on a ajouté des sauvegardes :
rdiff-backup --remove-older-than 1W --force /repertoire_de_sauvegarde
Ici on enlève toutes les modifications enregistrées vieilles de plus d'une semaine. On peut mettre D(ay),W(eek), M(onth) et Y(ear).
S'il il y a plusieurs sauvegardes à supprimer, la commande échoue. C'est pourquoi il faut rajouter le paramètre –force pour ne pas prendre cette erreur en compte et que rdiff-backup effectue bien ce qu'on lui demande.
Pour vérifier que nos sauvegardes fonctionnent bien, on peut restaurer une sauvegarde :
rdiff-backup -r now /repertoire_de_sauvegarde /repertoire_de_restauration
L'option -r now permet de remettre la version de la sauvegarde la plus récente. On peut remonter dans les sauvegardes, par exemple remettre le repertoire d'il y a 3 jours avec l'option -r 3D.
cp -a /backupDir /restoredDir
rdiff-backup -l /repertoire_de_sauvegarde
Voici la partie vraiment intéressante : comment faire pour que nos commandes précédentes se lancent de façon automatique, de façon à ce que l'on ait pas à les faire manuellement chaque jour ?
Tout d'abord quelques mots sur les logiciels journalisation de tâches : Actuellement on dispose de trois outils sous linux pour cela :
Dans notre cas, nous allons utiliser cron, cron utilise la crontab qui permet d'indiquer les tâches que l'on veut réaliser et à quelle fréquence.
Pour éditer la crontab, il suffit de faire :
crontab -e
Pour journaliser notre tâche, on indique à cron d'exécuter le script ~/sauve_mon_dossier.sh chaque jour à 20h00.
On met donc la ligne suivante dans notre crontab :
00 20 * * * ~/sauve_mon_dossier.sh
Celle-ci signifie tous les jours à 20h00 lance le script /root/sauve_mon_dossier.sh . C'est bien les minutes d'abord et les heures ensuite, il n'y a pas d'erreur. Pour plus d'informations sur le formalisme du crontab, je vous invite à consulter cette page.
Ensuite, il reste à faire le script pour lancer les sauvegardes.
On édite donc le fichier ~/sauv_mon_dossier.sh avec son éditeur favori et on y insère les lignes suivantes :
#!/bin/sh nice -n 19 rdiff-backup --exclude /home/login/.aMule /home/login /mnt/save && nice -n 19 rdiff-backup --remove-older-than 1W --force /mnt/save
Le nice -n 19 signifie que lorsqu'on lance les commandes, elles s'exécutent avec la priorité la plus petite par rapport aux autres processus, ceci afin d'éviter que l'ordinateur ne se mette à ramer tous les jours à 20h00.
On sauvegarde le script et on n'oublie pas de mettre les droits d'éxecution sur le fichier :
chmod +x ~/sauv_mon_dossier.sh
Voilà c'est fini, on peut simplement vérifier que le script fonctionne bien en le lançant :
~/sauve_mon_dossier.sh
Normalement rdiff-backup se lance, fait sa sauvegarde et vous informe ensuite qu'il a ou non supprimé les sauvegardes plus vieilles d'une semaine.
* Pour afficher les listes des sauvegardes :
rdiff-backup -l repertoire_de_sauvegarde
* Pour KDE (Kubuntu), il existe une interface graphique nommée Keep et qui condense toutes ces actions de sauvegarde. Vous pouvez egalement aller voir la page keep du wiki.
* Pour Gnome, il y a aussi une intreface : pybackpack
Un bon site qui m'a permis de construire ce tutoriel : Rdiff-backup (en)
Contributeurs : Herbie, ostaquet
Basé sur http://debuntu.tuxfamily.org